package com.codefish.framework.spring.beans.factory;

import com.sun.istack.internal.Nullable;

import java.util.List;

/**
 * ListableBeanFactory的接口
 * @author <a href='https://gitee.com/hzf2281'>codefish</a>
 * @version 1.0.0
 * @since 2022/10/03 下午 02:02
 */
public interface IListableBeanFactory extends IBeanFactory{
    /**
     * 获取所有的beanName
     * @return 所有beanName
     */
    List<String> getBeanDefinitionNames();

    /**
     * 获取指定class类型(包括子类)的beanName
     * @param type 指定class类型(包括子类)的beanName
     * @return class类型为type的所有beanName，如果type为null则返回所有beanName
     */
    List<String>  getBeanNamesForType(@Nullable Class<?> type);
}
